package com.ls.lserp.modules.material.dao;




import java.util.List;

import com.ls.lserp.common.persistence.CrudDao;
import com.ls.lserp.common.persistence.annotation.MyBatisDao;
import com.ls.lserp.modules.material.entity.InventoryRequest;
import com.ls.lserp.modules.material.entity.MaterialOutInbound;
import com.ls.lserp.modules.order.entity.AuditInfo;
import com.ls.lserp.modules.purchase.entity.PurchaseRequest;

@MyBatisDao
public interface MaterialInboundDao extends CrudDao<MaterialOutInbound>{
	/**
	  * @Title: findInventoryRequestDetailList
	  * @Description: 库存申请
	  * @param @param materialOutInbound
	  * @param @return
	  * @return List<MaterialOutInbound> 
	  * @throws
	  */
	public List<MaterialOutInbound> findInventoryRequestDetailList(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 入库申请明細
	  * @param @param materialOutInbound
	  * @param @return
	  * @return List<MaterialOutInbound> 
	  * @throws
	  */
	public List<MaterialOutInbound> findRequestDetailsList(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 库存明細
	  * @param @param materialOutInbound
	  * @param @return
	  * @return List<MaterialOutInbound> 
	  * @throws
	  */
	public List<MaterialOutInbound> findInventoryMaterialDetailList(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 仓库集
	  * @param @param materialOutInbound
	  * @param @return
	  * @return List<MaterialOutInbound> 
	  * @throws
	  */
	public List<MaterialOutInbound> findWarehouseList(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 货架集
	  * @param @param materialOutInbound
	  * @param @return
	  * @return List<MaterialOutInbound> 
	  * @throws
	  */
	public List<MaterialOutInbound> findRackList(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 插入明细
	  * @param @param materialOutInbound
	  * @param @return
	  * @return 
	  * @throws
	  */
	public int insertDetail(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 更新数量
	  * @param @param materialOutInbound
	  * @param @return
	  * @return 
	  * @throws
	  */
	public int updateDetail(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 更新数量
	  * @param @param materialOutInbound
	  * @param @return
	  * @return 
	  * @throws
	  */
	public int updateQuantity(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 查询数量
	  * @param @param materialOutInbound
	  * @param @return
	  * @return 
	  * @throws
	  */
	public MaterialOutInbound getQuantity(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: findRequestDetailsList
	  * @Description: 更新状态
	  * @param @param materialOutInbound
	  * @param @return
	  * @return 
	  * @throws
	  */
	public int changeStatus(MaterialOutInbound materialOutInbound);
	/**
	  * @Title: updateContractDetailStatus
	  * @Description: 更新合同明细状态
	  * @param @param inventoryRequest
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updateContractDetailStatus(PurchaseRequest purchaseRequest);
	/**
	  * @Title: updateContractStatus
	  * @Description: 修改合同状态
	  * @param @param inventoryRequest
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updateContractStatus(PurchaseRequest purchaseRequest);
	/**
	  * @Title: findListByID
	  * @Description: 获取明细信息
	  * @param @param inventoryRequest
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public List<PurchaseRequest> findListByID(Long mId);
	/**
	  * @Title: getIndentID
	  * @Description: 获取订单ID
	  * @param @param materialOutInbound
	  * @param @return
	  * @return Long 
	  * @throws
	  */
	public Long getIndentID(PurchaseRequest purchaseRequest);
	/**
	  * @Title: updaterReserverPurchaseStatus
	  * @Description: 更新核料预定耗料表状态
	  * @param @param purchaseRequest
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public int updaterReserverPurchaseStatus(PurchaseRequest purchaseRequest);
	/**
	  * @Title: getCount
	  * @Description: 获取订单入库完成数量 
	  * @param @param indentID
	  * @param @return
	  * @return int 
	  * @throws
	  */
	public long getCount(Long indentID);
	
}
